/*
//	CP2013 Traffic Simulator Assignment :: (MVC) Model :: Common Header File
//	Copyright (c) 2010, Adam Rehn
//
//	This header contains common types and macros used by model components.
*/

#ifndef _MODEL_COMMON_H
#define _MODEL_COMMON_H

//Common macros
#define DEFAULT_GREEN_LENGTH 5
#define VEHICLE_BASE_SIZE    28  //If vehicles are full lane-width, rectangle overlap functions will prevent them from moving properly
#define LANE_BASE_SIZE       30
#define ROAD_LENGTH          (LANE_BASE_SIZE*10)

//Required for NULL
#include <cstring>

//Used for string-and-type- conversion
#include "../libadam-base/string_manipulation.h"

//Temporary: for debug usage
#include <iostream>
using std::cout;
using std::endl;

//The direction type is now in its own header
#include "direction.h"

enum lightstate
{
	RED = 0,
	YELLOW = 1,
	GREEN = 2
};

struct simulationParams
{
	unsigned int lanes_N;
	unsigned int lanes_S;
	unsigned int lanes_E;
	unsigned int lanes_W;
	unsigned int probability_N;
	unsigned int probability_S;
	unsigned int probability_E;
	unsigned int probability_W;
};

#endif
